CORE page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
CORE page# 0002 next prev
40: SUBTTL CORE ROUTINES FOR SWAPPING SYSTEM. 4 AUG 67 ↔ BEGIN CORE
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81: BLK←AC1
82: LOC←DSER
CORE page# 0003 next prev
84:
85:
86:
87: COREP: POINT 9,CORTAB
88: POINT 9,CORTAB,8
89: POINT 9,CORTAB,17
90: POINT 9,CORTAB,26
91: ↑CORINI:
92: MOVE TAC,[XWD CORBEG,CORBEG+1]
93: SETZM CORBEG
94: BLT TAC,COREND
95:
96: SETZM LOCKNO
97: MOVE TAC,SYSTOP
98: MOVEM TAC,LOKTOP
99:
100: MOVE TEM,COREP
101: MOVEI TAC,CORBLK
102: CONO APR,NXM
103: TDZA TAC1,TAC1
104: CORI1: ADDI TAC1,2000
105: HLLZ DAT,(TAC1)
106: CAMGE TAC1,SYSSIZ
107: TROA DAT,2
108: CONSZ APR,NXM
109: TRCA DAT,103
110: AOS CORTAL
111: IDPB DAT,TEM
112: TRNE DAT,2
113: JRST CORI2
114: TROE DAT,103
115: MOVEM TEM,CORE2P
116: SOJG TAC,CORI1
117: ADDI TAC1,2000
118: IDPB DAT,TEM
119: CORI2: MOVEM TAC1,RMEMSIZ
120: MOVEM TAC1,MEMSIZ
121: SUBI TAC1,1
122: MOVEM TAC1,37
123: IBP TEM
124: MOVEM TEM,CORLST
125: IFN FTSWAP,<
126: MOVE TAC,CORTAL
127: LSH TAC,=10
128: MOVEM TAC,CORMAX
129: MOVEI TAC,%SWPL
130: MOVEM TAC,SWAPLI
131: >
132: POPJ P,
CORE page# 0004 next prev
134: SUBTTL CORE UUO
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150: ↑CORUUO:
151: JUMPE TAC,ZERCOR
152: AOS (P)
153: PUSHJ P,UNLOCK
154: PUSHJ P,UCORE
155: SOS (P)
156: ZERCOR: MOVE TAC,CORMAX
157: CAMLE TAC,SWAPLIMIT
158: MOVE TAC,SWAPLIMIT
159: ASH TAC,-12
160: JRST STOTAC
161:
162: ↑UCORE: IORI TAC,1777
163: MOVE TAC1,JBTSTS(J)
164: TLNN TAC1,JSEG
165: JRST CORCS2
166: PUSH P,J
167: MOVEI J,JOBN-1
168: CORCSO: LDB TAC1,PSEGN
169: CAME TAC1,(P)
170: JRST CORCSL
171: MOVE TAC1,J
172: PUSHJ P,CORSGT
173: ADDI TAC1,1(TAC)
174: CORCS3: CAMG TAC1,CORMAX
175: JRST CORCSL
176: POP P,J
177: POPJ P,
178:
179: CORCSL: SOJG J,CORCSO
180: POP P,J
181: JRST CORXOK
182:
183: CORCS2: LDB TAC1,PSEGN
184: SKIPE DAT,TAC1
185: PUSHJ P,CORSGT
186: ADDI TAC1,1(TAC)
187: CAMLE TAC1,CORMAX
188: POPJ P,
189: CORXOK: PUSH P,TAC
190: PUSH P,UUO
191: PUSH P,J
192: PUSHJ P,IOWAIT
193: JRST .+2
194: CORYOK: PUSHJ P,WSCHED
195: PUSHJ P,ANYACT
196: JRST CORYOK
197: POP P,J
198: POP P,UUO
199: POP P,TAC
200: AOS (P)
201: CORUU1: SKIPE PROG,JBTADR(J)
202:
203: JRST CORUU5
204: PUSHJ P,CORGET
205: SOS (P)
206: JRST CORUU3
207:
208: CORUU5: PUSHJ P,CORE1
209: SOS (P)
210:
211: CORUU3:
212: IFN FTSWAP,<
213: PUSHJ P,WSCHED
214:
215: >
216: MOVE TAC1,JBTSTS(J)
217: TLNN TAC1,JSEG
218: JRST SPWCNT
219: JRST NOTSH9
220:
221:
222:
223: ↑RUNCOR:
224: AOS (P)
225: PUSHJ P,CORE1
226: SOS (P)
227: JRST WSCHED
228:
229: ↑CORSGT:
230: PUSH P,TAC
231: MOVE TAC,JBTSTS(TAC1)
232: TLNN TAC,SWP
233: JRST CORSG1
234: LDB TAC1,[POINT 9,JBTSWP(TAC1),35]
235: LSH TAC1,=10
236: JRST TPOPJ
237: CORSG1: HLRZ TAC1,JBTADR(TAC1)
238: AOJA TAC1,TPOPJ
CORE page# 0005 next prev
240: SUBTTL SHUFFLER CHKSHF
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260: ↑CHKSHF:
261: HGMAC (26)
262: SKIPE J,SHFWAT
263: JRST SHFLOP
264: SKIPN TAC,HOLEF
265: JRST CHKSHX
266: CHKSHZ: CAML TAC,MEMSIZ
267: JRST CHKERR
268: PUSHJ P,CORGB1
269: ILDB J,TAC
270: CAIGE J,JOBN
271: JUMPG J,SHFLOA
272: SHFLOB: PUSHACS
273: PUSHJ P,DISDATE
274: PUSHJ P,DISMES
275: ASCIZ /HOLEF = /
276: MOVE TAC,HOLEF
277: PUSHJ P,DISLOC
278: PUSHJ P,DISMES
279: ASCIZ / BUT NO HOLE PRESENT. CORTAB = /
280: MOVE LOC,HOLEF
281: PUSHJ P,CORGBP
282: ILDB J,TAC
283: CAIL J,JOBN
284: JRST HOLHLP
285: PUSH P,J
286: PUSHJ P,DISJOB
287: PUSHJ P,DISCRLF
288: POP P,TAC
289: HRRZ TAC1,JBTADR(TAC)
290: HLRZ TAC,JBTADR(TAC)
291: ADDI TAC,(TAC1)
292: CAMG TAC1,HOLEF
293: CAMG TAC,HOLEF
294: JRST .+2
295: JRST HOLHLP
296: MOVE LOC,HOLEF
297: PUSHJ P,CORGBP
298: MOVEI TAC1,0
299: IDPB TAC1,TAC
300: JRST HOLFIX
301:
302: HOLHLP: PUSHJ P,DISMES
303: ASCIZ /I CAN'T FIX IT.
304: /
305: PUSHJ P,DISFLU
306: PUSHJ P,DDTCAL
307: HOLFIX: POPACS
308: JRST CHKSHX
309:
310: CHKERR: PUSHACS
311: PUSHJ P,DISMES
312: ASCIZ /ππHOLEF OUT OF BOUNDS
313: /
314: POPACS
315: SETZM HOLEF
316: CHKSHX: SOS (P)
317: PSYNC CORCSC
318: JRST DIDLE4
319:
320: SHFLOA: HRRZ TAC,JBTADR(J)
321: CAME TAC,HOLEF
322: JRST SHFLOB
323:
324:
325: SKIPN JBTST2(J)
326: SKIPG TAC,FIT
327: JRST SHFLOP
328: MOVE TAC,JBTPRI(TAC)
329: CAMG TAC,JBTPRI(J)
330: JRST SHFLOP
331: MOVE TAC,SEGWAIT
332: LDB TAC,[POINT 6,JBTSTS(TAC),35]
333: CAIN TAC,(J)
334: JRST SHFLOP
335: SKIPE FORCE
336: JRST SHFLOZ
337: SHFLOX: JRST SHFLOP
338:
339: MOVSI TAC,SWP
340: IORM TAC,JBTSTS(J)
341: MOVEM J,FORCE
342: POPJ P,
343:
344: SHFLOZ: PUSH P,J
345: PUSHJ P,DISMES
346: ASCIZ /[FORCE SET AT SHFLOZ]
347: /
348: POP P,J
349:
350: SHFLOP: JUMPL J,CPOPJ
351: SKIPN PROG,JBTADR(J)
352: JRST NOTSH1
353: IFN JDMPRG,<
354: MOVE JDAT,JBTDAT(J)
355: >
356: HLRZ TAC,PROG
357: PUSHJ P,SHFCOR
358: JRST NOTSHF
359:
360: IFN FTSHF1K,<
361: SKIPE SHFJOB ;IF FINISHED, CLEAN UP SHF BIT AND OTHER CELLS
362: POPJ P, ;OTHERWISE, RETURN, LETTING CLOCK DO THE MOVING
363: >
364: JRST NOTSH1
365:
366: NOTSHF: SKIPN HOLEF
367: JRST NOTSH1
368: IFN FTSWAP,<
369: MOVM TAC,FORCE
370: CAME J,FIT
371: CAMN J,TAC
372: JRST NOTSH1
373: >
374: MOVEM J,SHFWAT
375: MOVSI TAC,SHF
376: SKIPN JBTST2(J)
377: IORM TAC,JBTSTS(J)
378: POPJ P,
379:
380: ↑NOTSH1:
381: PSYNC CORCSC
382: SETZM SHFWAT
383: IFN FTSHF1K,<
384: SETZM SHFTAC ;CLEAR SHUFFLE FLAGS WHEN DONE
385: SETZM SHFEND
386: SETZM SHFJOB
387: >
388: MOVSI TAC,SHF
389: ANDCAB TAC,JBTSTS(J)
390: SKIPN JBTADR(J)
391: JRST NOTSH4
392: TLNE TAC,JSEG
393: JRST NOTSH6
394: PUSHJ P,SPWCNT
395: JRST NOTSH4
396:
397: NOTSH9: MOVEI TAC1,(J)
398:
399: MOVEI J,JOBN-1
400: NOTSH3: MOVE TAC,JBTSTS(J)
401: ANDI TAC,77
402: CAIN TAC,(TAC1)
403: PUSHJ P,SPWCNT
404: SOJG J,NOTSH3
405: MOVEI J,(TAC1)
406: POPJ P,
407:
408: NOTSH6: PUSHJ P,NOTSH9
409: NOTSH4:
410:
411: IFN FTSHF1K,<
412: SKIPN SHFBLK ;ANY CORE TO RETURN?
413: JRST NOTSH2 ;NO.
414: HRRZ LOC,SHFBLK
415: HLRZ BLK,SHFBLK
416: SETZB UCHN,SHFBLK
417: PUSHJ P,CORSTG ;YES. RETURN IT.
418: >
419:
420: NOTSH2: SOS (P)
421: JRST DIDLE4
422:
423: ↑SPWCNT:
424: SKIPN JBTST2(J)
425: POPJ P,
426: PSYNC SPWCSC
427: MOVSI TAC,SPWST1!SPWST2
428: ANDCAM TAC,JBTST2(J)
429: XSYNC SPWCSC
430: POPJ P,
CORE page# 0006 next prev
432: SUBTTL ANYACT ROUTINE TO TEST FOR ANY ACTIVE DEVICES
433:
434:
435:
436:
437:
438:
439:
440:
441:
442: ↑ANYACT:
443: MOVE UCHN,JBTSTS(J)
444: TLNN UCHN,JSEG
445: JRST ANYAC3
446: PUSH P,PROG
447: PUSH P,J
448: MOVEI J,JOBN-1
449: ANYAC1: LDB UCHN,PSEGN
450: CAME UCHN,(P)
451: ANYA1A: SOJG J,ANYAC1
452: JUMPLE J,ANYAC2
453: MOVE PROG,JBTADR(J)
454: PUSHJ P,ANYAC3
455: CAIA
456: JRST ANYA1A
457: POP P,J
458: POP P,PROG
459: POPJ P,
460:
461: ANYAC2: POP P,J
462: POP P,PROG
463: JRST CPOPJ1
464:
465: ANYAC3: SKIPN JBTADR(J)
466: JRST CPOPJ1
467: SKIPE JBTGLU(J)
468: POPJ P,
469: MOVEI UCHN,JOBJDA(JDAT)
470: CAMN J,JOB(PID)
471: MOVEI UCHN,USRJDA(PID)
472: MOVEI IOS,IOACT
473: SKIPL AC2,JOBJMH(UCHN)
474: CAILE AC2,17
475: JRST ANY3
476: TLO UCHN,AC2
477: MOVSI TAC1,DVTTY
478: ANY: HRRZ DDB,@UCHN
479: JUMPE DDB,ANY2
480: CAIL DDB,CHKBEG
481: CAML DDB,MEMSIZ
482: CAML DDB,RMEMSIZ
483: JRST ANY7
484: TDNN IOS,DEVIOS(DDB)
485: ANY2: SOJGE AC2,ANY
486: JUMPL AC2,ANY4A
487: TDNN TAC1,DEVMOD(DDB)
488: POPJ P,
489: JRST ANY2
490:
491: ANY4A: SKIPL UCHN,JBTIOP(J)
492: JRST ANY4
493: ANY4BA: SKIPN DDB,(UCHN)
494: JRST ANY4C
495: TDNE IOS,DEVIOS(DDB)
496: TDNE TAC1,DEVMOD(DDB)
497: CAIA
498: POPJ P,
499: ANY4C: ADD UCHN,[1,,1]
500: AOBJN UCHN,ANY4BA
501: JRST ANY4
502:
503: ANY7: PUSHACS
504: PUSHJ P,DISDATE
505: PUSHJ P,DISMES
506: ASCIZ /ANY7: ILLEGAL DDB ADDRESS = /
507: HRRZ TAC,DDB-17(P)
508: PUSHJ P,DISLOC
509: PUSHJ P,DISTAB
510: MOVE J,J-17(P)
511: PUSHJ P,DISJOB
512: PUSHJ P,DISMES
513: ASCIZ / USER IO CHANNEL /
514: MOVE TAC,AC2-17(P)
515: PUSHJ P,DISLOC
516: PUSHJ P,DISCRLF
517: MOVE J,J-17(P)
518:
519: POPACS
520: SETZM @UCHN
521: JRST ANY2
522:
523: ANYHCC: PUSHACS
524: PUSHJ P,DISDAT
525: PUSHJ P,DISMES
526: ASCIZ /JOBHCU CLOBBERED AT ANYACT. /
527: MOVE J,J-17(P)
528: PUSHJ P,DISJOB
529: PUSHJ P,DISMES
530: ASCIZ / JOBHCU = /
531: MOVE TAC,AC2-17(P)
532: PUSHJ P,DISOCT
533: PUSHJ P,DISCRLF
534: MOVE J,J-17(P)
535:
536: POPACS
537: SETZM JOBJMH(UCHN)
538: SETZM (UCHN)
539: JRST CPOPJ1
540:
541: ANY3: JUMPG AC2,ANYHCC
542: HRRZ AC2,AC2
543: CAIL AC2,CHKBEG
544: CAML AC2,MEMSIZ
545: CAML AC2,RMEMSIZ
546: JRST ANYILM
547: ANY3A: TDNN IOS,DEVIOS(AC2)
548: AOS (P)
549: POPJ P,
550:
551: ANYILM: PUSHACS
552: PUSHJ P,DISDATE
553: PUSHJ P,DISMES
554: ASCIZ /ANYILM: SAVGET JOBCHU - ILLEGAL DDB ADDRESS.
555: /
556: POPACS
557: JRST CPOPJ1
558:
559: ANY4: SKIPE JBTIIP(J)
560: POPJ P,
561: SKIPN SP2GO(J)
562: SKIPE SPWGO(J)
563: AOSA (P)
564: JRST CPOPJ1
565:
566: PSYNC SPWCSC
567: MOVE IOS,JBTST2(J)
568: TLC IOS,SPWST1!SPWST2
569: TLCN IOS,SPWST1!SPWST2
570: JRST ANY4B
571: MOVSI IOS,SPWSUS
572: TDNN IOS,JBTST2(J)
573: IORM IOS,JBTST2(J)
574: SOS (P)
575: ANY4B: XSYNC SPWCSC
576: POPJ P,
CORE page# 0007 next prev
578: SUBTTL CORE0
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599: ↑CORE0:
600: IFE FTSWAP,<
601: JUMPE PROG,CORGET
602: >
603: IFN FTSWAP,<
604: CAML TAC,SWAPLIMIT
605: POPJ P,
606: JUMPN PROG,CORE0A
607: MOVSI TAC1,SWP
608: CAMGE TAC,CORMAX
609: TDNN TAC1,JBTSTS(J)
610: JRST CORGET
611: JUMPE TAC,CORE0B
612: LSH TAC,-12
613: AOSA TAC
614: CORE0B: ANDCAM TAC1,JBTSTS(J)
615: ↑CORE0K:
616: DPB TAC,IMGIN
617: IFN FTSTAT,<
618: PUSH P,TAC
619: LSH TAC,6
620: ANDI TAC,37700
621: TRO TAC,CSZSTA
622: PUSHJ P,STAPUT
623: POP P,TAC
624: >
625: PUSH P,DAT
626: LDB DAT,IMGOUT
627: CAML TAC,DAT
628: JRST CORE0C
629: SETZM SWPCNT
630: DPB TAC,IMGOUT
631: SUB DAT,TAC
632: LSH TAC,CONVMD
633: HLRZ TAC1,JBTSWP(J)
634: ADD TAC,TAC1
635: PUSHJ P,FXSAT
636: CORE0C: POP P,DAT
637: JRST CPOPJ1
638:
639: CORE0A:
640: >
641: PUSHJ P,ANYACT
642: POPJ P,
643:
CORE page# 0008 next prev
645:
646:
647:
648:
649:
650:
651:
652:
653: ↑CORE1: CAML TAC,SWAPLIMIT
654: POPJ P,
655: NOSCHEDULE
656: PSYNC CORCSC
657: MOVE LOC,JBTSTS(J)
658: TRNE LOC,JLOCK
659: PUSHJ P,UNLOCK
660: ANDI TAC,-1
661: HRRZ LOC,PROG
662: HLRZ BLK,PROG
663: JUMPE TAC,CORG2
664: CAILE TAC,(BLK)
665: JRST CORG2
666: CAIN TAC,(BLK)
667: JRST DIDLEA
668: ADDI LOC,1(TAC)
669: SUBI BLK,1(TAC)
670: HRL PROG,TAC
671: MOVEI UCHN,0
672: PUSHJ P,CORSTG
673: JRST DIDLEA
674:
675: SHFCOR: PUSHJ P,ANYACT
676: POPJ P,
677: PSYNC CORCSC
678: ANDI TAC,-1
679: HRRZ LOC,PROG
680: HLRZ BLK,PROG
681: CORG2: MOVEI UCHN,0
682: PUSHJ P,CORSTG
683: JRST CORG1
684:
685:
686:
687: ↑CORGET:
688: CAML TAC,SWAPLIMIT
689: POPJ P,
690: PSYNC CORCSC
691: CORG1: SETZB LOC,PROG
692: AOS NCORCALLS
693: JUMPE TAC,DIDLE2
694: CAME J,SHFWAT
695: SKIPN SHFWAT
696: PUSHJ P,HOLSRC
697: JRST BAKOLD
698: CORGT1: MOVEM LOC,PROG
699: HRLM TAC,PROG
700: MOVEI BLK,(TAC)
701: MOVE UCHN,J
702: PUSHJ P,CORSTG
703: MOVE BLK,JBTADR(J)
704: JUMPN BLK,MOVCOR
705: PUSHJ P,CLRJB1
706: MOVE UCHN,JBTSTS(J)
707: TLNE UCHN,SWP
708: JRST DIDLEA
709: MOVSI UCHN,JERR
710: ORM UCHN,JBTSTS(J)
711: MOVNI UCHN,STOPQ
712: MOVEM UCHN,JOBQUE(J)
713: PUSHJ P,REQUE
714: JRST DIDLEA
CORE page# 0009 next prev
716: BAKOLD:
717: IFN FTSWAP,<
718:
719:
720: MOVSI UCHN,SWP
721: TDNN UCHN,JBTSTS(J)
722: JRST CORGT3
723: SOS (P)
724: JRST DIDLE4
725:
726: CORGT3: JUMPL TAC,CORGT2
727: CAMGE TAC,SWAPLIMIT
728: CAML TAC,CORMAX
729: CORGT2: SOSA (P)
730: PUSHJ P,XPAND
731: >
732: IFE FTSWAP,< SOS (P)
733: >
734: HLRZ TAC,JBTADR(J)
735: HRRZ LOC,JBTADR(J)
736: TRNN LOC,-1
737: JRST DIDLE4
738: JRST CORGT1
CORE page# 0010 next prev
740:
741:
742: MOVCOR: CAIN LOC,(BLK)
743: JRST DIDLE
744: MOVSI TAC1,INTSHW
745: TDNN TAC1,JBTIEN(J)
746: JRST MOVCO1
747: IORM TAC1,JBTIRQ(J)
748: PUSH P,J
749: PUSH P,BLK
750: PUSH P,LOC
751: PUSH P,TAC
752: PUSH P,PROG
753: PUSHJ P,INTRUN
754: POP P,PROG
755: POP P,TAC
756: POP P,LOC
757: POP P,BLK
758: POP P,J
759: MOVCO1:
760: IFN FTSHF1K,<
761: SKIPN SPWACT ; IS THERE A SPACEWAR JOB ACTIVE?
762: JRST ISET2 ; NO, DO IT ALL IN ONE BIG BLT
763: ;;; THE FOLLOWING J. SAUTER CODE (+ OTHER BITS AND PIECES AROUND
764: ;;; AT NOTSH1 AND CLKSER) IS DE-ACTIVATED FOR EFFECIENCY'S SAKE
765:
766: ;CALC AMT TO GIVE BACK AFTER MOVING
767: ;BLK = XWD LENGTH OF OLD CORE,BOTTOM OF OLD CORE
768: ;TAC = LENGTH OF NEW CORE
769: ;LOC = BOTTOM OF NEW CORE
770:
771: MOVEM BLK,SHFBLK
772: HLRZ TAC1,BLK ;LENGTH OF OLD
773: ADDI TAC1,(BLK) ;TOP OF OLD
774: CAIL LOC,(TAC1) ;BOTTOM OF NEW ABOVE TOP OF OLD
775: JRST ISET ;YES. AREAS ARE DISJOINT
776: MOVE TAC1,TAC ;LENGTH OF NEW CORE
777: ADD TAC1,LOC ;TOP OF NEW CORE
778: CAIG TAC1,(BLK) ;ABOVE BOTTOM OF OLD?
779: JRST ISET ;NO. AREAS ARE DISJOINT
780: HRRZM TAC1,SHFBLK
781: HLRZ TAC1,BLK ;AREAS OVERLAP.
782: ADDI TAC1,(BLK)
783: SUB TAC1,SHFBLK
784: JUMPLE TAC1,ISET1 ;AMOUNT LEQ 0. RETURN NONE.
785: SUBI TAC1,1
786: HRLM TAC1,SHFBLK
787: AOS SHFBLK
788: ISET: PUSH P,BLK ;GRAB THE OLD CORE UNTIL DONE
789: PUSH P,LOC
790: HRRZ LOC,SHFBLK
791: HLRZ BLK,SHFBLK
792: MOVE UCHN,J ;I HOPE J IS SET UP HERE
793: PUSHJ P,CORSTG ;GET BACK OLD CORE
794: POP P,LOC
795: POP P,BLK
796: JRST ISET2
797:
798: ISET1: SETZM SHFBLK ;DONT GIVE ANYTHING BACK.
799: >
800:
801: ISET2: HLRZ TAC1,BLK
802: CAILE TAC1,(TAC)
803: HRRZ TAC1,TAC
804: ADDM TAC1,SHFWRD
805: ADD TAC1,LOC
806: MOVE TAC,LOC
807: HRL TAC,BLK
808: MOVEM BLK,PARBLK
809: SETZM JBTADR(J)
810:
811: IFN FTSHF1K,<
812: SKIPN SPWACT ; IS THERE A SPACEWAR JOB ACTIVE?
813: JRST MOVC1 ; NO, DO IT ALL IN ONE BLT
814: ADDI TAC1,1
815: MOVEM TAC1,SHFEND ;RECORD THE END OF THE BLT
816: MOVE TAC1,[XWD 2000,2000]
817: ADD TAC1,TAC ;BLT THE FIRST 1K NOW.
818: MOVEM TAC1,SHFTAC ;WHERE TO START NEXT TIME
819: BLT TAC,-1(TAC1) ;MOVE JOB DATA AREA.
820: SETOM SHFWAT ;NOTE THAT A JOB IS MOVING.
821: MOVSI TAC,SHF ;DONT RUN HIM UNTIL STOPPED
822: IORM TAC,JBTSTS(J)
823: MOVEM J,SHFJOB
824: JRST DIDLE
825: >
826:
827: MOVC1:
828:
829: IFN FTSHF1K,<
830: SETZM SHFTAC ; ZERO OUT CLKINT COMMUNICATION CELLS
831: SETZM SHFEND
832: SETZM SHFJOB ; MAKE SURE NOTSH1 IS CALLED!
833: >
834:
835: IFN FTHG,<PUSH P,HGCODE
836: HGMAC (30) >
837: MOVEM J,PARSJB
838: ↑SHFBLT:
839: BLT TAC,(TAC1)
840: IFN FTHG,<POP P,HGCODE>
841: PUSHJ P,DIDLE
842: JFCL
843: AOS (P)
844: ↑SHFDONE:
845: MOVSI TAC1,INTSHD
846: TDNN TAC1,JBTIEN(J)
847: POPJ P,
848: IORM TAC1,JBTIRQ(J)
849: PUSH P,J
850: PUSH P,BLK
851: PUSH P,LOC
852: PUSH P,PROG
853: PUSHJ P,INTRUN
854: POP P,PROG
855: POP P,LOC
856: POP P,BLK
857: POP P,J
858: POPJ P,
CORE page# 0011 next prev
860: SUBTTL DIDDLE
861:
862:
863:
864:
865:
866:
867:
868:
869: DIDLEA: MOVE TAC,JBTSTS(J)
870: TLNE TAC,JSEG
871: JRST DIDLE3
872: JRST DIDLE1
873:
874:
875: DIDLE: SUBI LOC,(BLK)
876: MOVE TAC,JBTSTS(J)
877: TLNN TAC,JSEG
878: JRST DIDLE6
879: PUSH P,J
880: MOVE J,JOB
881: LDB TAC,PSEGN
882: CAME TAC,(P)
883: JRST DIDLE5
884: PUSHJ P,GETPR
885: DATAO APR,TAC
886: DIDLE5: POP P,J
887: JRST DIDLE3
888:
889: DIDLE6: CAME J,JOB(PID)
890: SKIPA TAC,JOBPC(JDAT)
891: MOVE TAC,USRPC(PID)
892: TLNE TAC,USRMOD
893: JRST DIDLE1
894:
895: HRRZ TAC,JOBDAC+P(JDAT)
896: CAMLE TAC,SYSSIZ
897: CAML TAC,MEMSIZ
898: JRST .+2
899: ADDM LOC,JOBDAC+P(JDAT)
900:
901: ADDM LOC,JOBDPG(JDAT)
902: DIDLE1: HLRZM PROG,JOBREL(JDAT)
903: DIDLE2: CAME J,JOB(PID)
904: JRST DIDLE3
905: HRRZI TAC,(P)
906: CAMLE TAC,SYSSIZ
907: CAML TAC,MEMSIZ
908: JRST .+2
909: ADDM LOC,P
910: MOVEM PROG,JOBADR(PID)
911: IFN FTSTAT,<
912: CAME PROG,JBTADR(J)
913: PUSHJ P,CSTAT
914: >
915: MOVEM PROG,JBTADR(J)
916: HLRZM PROG,USRREL(PID)
917: PUSHJ P,GETPR
918: DATAO APR,TAC
919: DIDLE3:
920: IFN FTSTAT,<
921: CAME PROG,JBTADR(J)
922: PUSHJ P,CSTAT
923: >
924: MOVEM PROG,JBTADR(J)
925: DIDLE4: SETZB TAC,HOLEF
926: PUSHJ P,HOLSRC
927: JRST COROK
928: ADDI LOC,1(BLK)
929: CAMGE LOC,MEMSIZ
930: MOVEM LOC,HOLEF
931: COROK:
932: IFN FTSWAP,<
933: MOVEI TAC,-1
934: PUSHJ P,HOLE
935: ASH AC2,-=10
936: MOVEM AC2,BIGHOLE
937: >
938: SCHEDULE
939: XSYNC CORCSC
940: IFN FTCORBUG,< PUSHJ P,CORTCK >
941: JRST CPOPJ1
942:
CORE page# 0012 next prev
944:
945: IFN FTSTAT,<
946: CSTAT: MOVE TAC,JBTSTS(J)
947: TLNE TAC,SWP
948: JRST CSTAT0
949: MOVE TAC,PROG
950: XOR TAC,JBTADR(J)
951: TLNN TAC,776000
952: JRST CSTAT1
953: HLRZ TAC,PROG
954: LSH TAC,-4
955: TRZ TAC,77
956: MOVEI TAC,CSZSTA+100(TAC)
957: PUSHJ P,STAPUT
958: CSTAT1: JUMPE PROG,CPOPJ
959: MOVE TAC,PROG
960: XOR TAC,JBTADR(J)
961: TRNN TAC,776000
962: POPJ P,
963: CSTAT0: HRRZ TAC,PROG
964: LSH TAC,-4
965: TRO TAC,CPSSTA
966: ↑STAPUT:IORI TAC,(J)
967: STAPTT: CONSO PI,77000
968: JRST STAPOK
969: HRLI TAC,STACLK
970: CONO PI,PIOFF
971: IDPB TAC,CLKQ
972: CONO PI,PION
973: POPJ P,
974:
975: STACLK: HRRZ TAC,DAT
976: STAPOK: IDPB TAC,STATPTR
977: MOVE TAC,STATPTR
978: CAME TAC,[POINT 18,STATS+STATLEN-1,35]
979: POPJ P,
980: MOVE TAC,[POINT 18,STATS]
981: MOVEM TAC,STATPTR
982: AOS STATNUM
983: POPJ P,
984:
985: ↑GLUSTT:PUSH P,TAC
986: MOVE TAC,JBTGLU(J)
987: ANDI TAC,77
988: LSH TAC,6
989: TRO TAC,GLUSTA
990: PUSHJ P,STAPUT
991: POP P,TAC
992: POPJ P,
993:
994: ↑NAMSTT:PUSH P,TAC
995: MOVEI TAC,NAMSTA(J)
996:
997: PUSHJ P,STAPTT
998: HLRZ TAC,JOBNAM(J)
999: PUSHJ P,STAPTT
1000: HRRZ TAC,JOBNAM(J)
1001: PUSHJ P,STAPTT
1002: POP P,TAC
1003: POPJ P,
1004:
1005: ↑SEGSTT:PUSH P,TAC
1006: LDB TAC,PSEGN
1007: LSH TAC,6
1008: TRO TAC,SEGSTA
1009: PUSHJ P,STAPUT
1010: POP P,TAC
1011: POPJ P,
1012: >
CORE page# 0013 next prev
1014: SUBTTL HOLSRC
1015:
1016:
1017:
1018:
1019:
1020:
1021:
1022:
1023:
1024:
1025: HOLSRC:
1026: IFN FTSWAP,<
1027: CAML TAC,CORMAX
1028: >
1029: IFE FTSWAP,<
1030: CAML TAC,MEMSIZ
1031: >
1032: POPJ P,
1033: HOLE: MOVE UCHN,CORE2P
1034: SETZ AC2,
1035: MOVE LOC,LOKTOP
1036: CORHOL: TDZA BLK,BLK
1037:
1038: CORHO0: ADDI BLK,2000
1039: CORHO1: CAMN UCHN,CORLST
1040: POPJ P,
1041: ILDB TAC1,UCHN
1042: ADDI LOC,2000
1043: JUMPE TAC1,CORHO0
1044: JUMPE BLK,CORHO1
1045: IFN FTSWAP,<
1046: CAMLE BLK,AC2
1047: MOVEM BLK,AC2
1048: >
1049: CAMG BLK,TAC
1050:
1051:
1052: JRST CORHOL
1053: SUBI LOC,2000(BLK)
1054: SUBI BLK,1
1055: IFN FTSWAP,<
1056: CAMGE TAC,SWAPLIMIT
1057: >
1058: AOS (P)
1059: POPJ P,
1060:
CORE page# 0014 next prev
1062:
1063: IFN FTCORBUG,<
1064: CORCHK: PUSH P,TAC
1065: PUSH P,AC2
1066: PUSH P,AC1
1067: MOVE AC1,CORE2P
1068: MOVEI AC2,0
1069: CORCH1: ILDB TAC,AC1
1070: JUMPN TAC,CORCH9
1071: ADDI AC2,1
1072: CORCH9: CAME AC1,CORLST
1073: JRST CORCH1
1074: CAMN AC2,CORTAL
1075: JRST CORCH8
1076:
1077: PUSHACS
1078: PUSHJ P,DISMES
1079: ASCIZ /CORTAL = /
1080: MOVE TAC,CORTAL
1081: PUSHJ P,DISLOC
1082: PUSHJ P,DISMES
1083: ASCIZ /,ππππ SHOULD BE = /
1084: MOVE TAC,AC2-17(P)
1085: PUSHJ P,DISLOC
1086: PUSHJ P,DISMES
1087: ASCIZ /; CALLER'S ADDRESS = /
1088: HRRZ TAC,-24(P)
1089: PUSHJ P,DISLOC
1090: PUSHJ P,DISMES
1091: ASCIZ /
1092: GET A WIZARD!! IF YOU CAN'T FIND ONE, TYPE POPJ 3,$X
1093: /
1094: PUSHJ P,DISFLU
1095: PUSHJ P,DDTCALL
1096: POPACS
1097: MOVEM AC2,CORTAL
1098:
1099: CORCH8: POP P,AC1
1100: POP P,AC2
1101: POP P,TAC
1102: POPJ P,
1103:
1104: CORTCK: PUSH P,AC1
1105: PUSH P,AC2
1106: PUSH P,AC3
1107: PUSH P,LOC
1108: PUSH P,J
1109: PUSH P,TAC
1110: PUSH P,TAC1
1111: MOVSI AC1,JNA
1112: MOVE J,JOBNM1
1113: CORCKL: TDNE AC1,JBTSTS(J)
1114: SKIPN AC2,JBTADR(J)
1115: JRST CORCKN
1116: HRRZ LOC,AC2
1117: HLRZ AC2,AC2
1118: ADDI AC2,1
1119: LSH AC2,-=10
1120: PUSHJ P,CORGBP
1121: CORCK1: ILDB AC3,TAC
1122: CAIE AC3,(J)
1123: JRST CORCKC
1124: SOJG AC2,CORCK1
1125: CORCKN: SOJG J,CORCKL
1126:
1127: MOVE LOC,SYSTOP
1128: CORCK0: PUSHJ P,CORGBP
1129: CORCK2: ILDB J,TAC
1130: JUMPE J,CORCK3
1131: CAILE J,77
1132: JRST CORCK4
1133: CAMLE J,JOBNM1
1134: JRST CORCKD
1135: MOVE AC1,JBTADR(J)
1136: CAIE LOC,(AC1)
1137: JRST CORCKE
1138: HLRZ AC2,AC1
1139: IORI AC2,1777
1140: ADDI LOC,1(AC2)
1141: JRST CORCK0
1142:
1143: CORCK3: ADDI LOC,2000
1144: CAME TAC,CORLST
1145: JRST CORCK2
1146: CORCKZ: POP P,TAC1
1147: POP P,TAC
1148: POP P,J
1149: POP P,LOC
1150: POP P,AC3
1151: POP P,AC2
1152: POP P,AC1
1153: JRST CORCHK
1154:
1155: CORCK4: CAIN J,101
1156: JRST CORCKF
1157: CORCK5: CAIE J,105
1158: JRST CORCK3
1159: CAMGE LOC,MEMSIZ
1160: JRST CORCKF
1161: JRST CORCK3
1162:
1163: CORCKC: JSP TAC1,CORCKX
1164: CORCKD: JSP TAC1,CORCKX
1165: CORCKE: JSP TAC1,CORCKX
1166: CORCKF: JSP TAC1,CORCKX
1167:
1168: CORCKX: PUSHACS
1169: PUSHJ P,DISMES
1170: ASCIZ /LOSSAGE AT CORCHK -- GET A WIZARD. THE WINNING ENTRY IS /
1171: HRRZ TAC,TAC1-17(P)
1172: SUBI TAC,CORCKC+1
1173: PUSHJ P,DISOCT
1174: PUSHJ P,DISCRLF
1175: PUSHJ P,DISFLU
1176: PUSHJ P,DDTCAL
1177: POPACS
1178: JRST CORCKZ
1179: >
CORE page# 0015 next prev
1181: SUBTTL CORSTG ;ROUTINE TO SET AND CLEAR CORE USE TABLE
1182:
1183:
1184:
1185:
1186:
1187:
1188:
1189: ↑CORSTG:
1190: PUSH P,TAC
1191: ASH BLK,-12
1192: ADDI BLK,1
1193: JUMPE UCHN,.+2
1194: MOVNI BLK,(BLK)
1195: CAML LOC,LOKTOP
1196:
1197: ADDM BLK,CORTAL
1198: PUSHJ P,CORGBP
1199: MOVM BLK,BLK
1200: CORST1: ILDB TAC1,TAC
1201: JUMPE UCHN,CORST9
1202: JUMPN TAC1,CORST2
1203: JRST CORSTD
1204: CORST9: JUMPN TAC1,CORSTD
1205: CORST2: PUSHACS
1206: PUSHJ P,DISDATE
1207: PUSHJ P,DISMES
1208: ASCIZ /CORTAB LOSES AT CORSTG. OLD CLAIM= /
1209: MOVE TAC,TAC1-17(P)
1210: PUSHJ P,DISDCP
1211: PUSHJ P,DISMES
1212: ASCIZ / NEW CLAIM = /
1213: MOVE TAC,UCHN-17(P)
1214: PUSHJ P,DISDCP
1215: PUSHJ P,DISCRLF
1216: POPACS
1217: CORSTD: DPB UCHN,TAC
1218: SOJG BLK,CORST1
1219: IFN FTCORBUG,< PUSHJ P,CORCHK >
1220: JRST TPOPJ
1221:
1222:
1223: ↑CORGBP:
1224:
1225: MOVE TAC,LOC
1226: CORGB1: MOVEI TAC1,0
1227: LSHC TAC,-14
1228: ROT TAC1,2
1229: ADD TAC,COREP(TAC1)
1230: POPJ P,
CORE page# 0016 next prev
1232: SUBTTL CLRJOB
1233:
1234:
1235:
1236:
1237:
1238:
1239:
1240: ↑CLRJB1:
1241: MOVE UCHN,JBTSTS(J)
1242: TLNE UCHN,JSEG
1243: POPJ P,
1244: SETZM JOBPRT(JDAT)
1245: MOVSI TAC,JOBPRT(JDAT)
1246: HRRI TAC,JOBPR1(JDAT)
1247: BLT TAC,JOBPFI(JDAT)
1248: SETZM JOBENB(JDAT)
1249: SETZM JOBINT(JDAT)
1250: MOVE TAC,JBTSTS(J)
1251: TLNN TAC,SWP!SHF
1252: HRRZS UUOPC(J)
1253: POPJ P,
1254:
1255: ↑CLRJOB:
1256: PUSHJ P,CLRJB1
1257: JRST ESTOP2
1258:
1259:
1260: ↑CLRINI:
1261: PUSH P,JOBDDT(JDAT)
1262: PUSHJ P,CLRJB1
1263: POP P,JOBDDT(JDAT)
1264: JRST ESTOP2
CORE page# 0017 next prev
1266: SUBTTL GETPR
1267:
1268:
1269: ↑GETPR:
1270: PUSH P,DAT
1271: PUSH P,TAC1
1272: MOVE TAC,JBTADR(J)
1273: ANDCM TAC,[XWD 1777,1777]
1274: LDB DAT,PSEGN
1275: JUMPE DAT,GETPR4
1276: MOVE TAC1,JBTSTS(DAT)
1277: TLNE TAC1,JWP
1278: TLO TAC,1
1279: SKIPN TAC1,JBTADR(DAT)
1280: JRST GETPR1
1281: GETPR5: HLRZ DAT,JBTADR(J)
1282: CAIGE DAT,400000
1283: JRST GETPR3
1284: SUBI TAC1,(DAT)
1285: HRLZ DAT,DAT
1286: ADD TAC1,DAT
1287: JRST GETPR2
1288: GETPR3: TRC TAC1,400000
1289: GETPR2: TLO TAC1,400000
1290: LSH TAC1,-11
1291: AND TAC1,[XWD 776,776]
1292: OR TAC,TAC1
1293: GETPR1: MOVEM TAC,LASTPR(PID)
1294: POP P,TAC1
1295: POP P,DAT
1296: POPJ P,
1297:
1298: GETPR4: SKIPN TAC1,JBTPR2(J)
1299: JRST GETPR1
1300: TLNE TAC1,1
1301: TLO TAC,1
1302: TRZN TAC1,1
1303: JRST GETPR5
1304: PUSH P,TAC
1305: HLRZ TAC,TAC1
1306: IORI TAC,1777
1307: HLRZ DAT,JBTADR(J)
1308: CAIG DAT,(TAC1)
1309: JRST GETPR6
1310: IORI DAT,1777
1311: SUBI DAT,(TAC1)
1312: CAML DAT,TAC
1313: MOVE DAT,TAC
1314: POP P,TAC
1315: HRL TAC1,DAT
1316: ADDI TAC1,(TAC)
1317: JRST GETPR5
1318: GETPR6: POP P,TAC
1319: TLZ TAC,1
1320: JRST GETPR1
CORE page# 0018 next prev
1322: SUBTTL RELOCA
1323:
1324:
1325:
1326:
1327:
1328:
1329:
1330:
1331:
1332:
1333:
1334:
1335:
1336:
1337: ↑↑RELOCA:
1338: TLZ TAC1,-1
1339: CAIGE TAC1,JOBPFI
1340: TLO TAC1,400000
1341: PUSH P,TAC
1342: HLRZ TAC,JBTADR(J)
1343: CAIGE TAC,(TAC1)
1344: JRST RELOC1
1345: MOVE AC1,JBTADR(J)
1346: ADDI TAC1,(AC1)
1347: JRST TPOPJ1
1348:
1349: RELOC1: LDB AC1,PSEGN
1350: JUMPE AC1,RELOC2
1351: MOVSI TAC,JWP
1352: TDNE TAC,JBTSTS(AC1)
1353: TLO TAC1,400000
1354: MOVE AC1,JBTADR(AC1)
1355: JRST RELOC3
1356:
1357: RELOC2: SKIPN AC1,JBTPR2(J)
1358: JRST TPOPJ
1359: TLOE AC1,1
1360: TLO TAC1,400000
1361: TRZN AC1,1
1362: JRST RELOC3
1363: PUSH P,DAT
1364: HLRZ TAC,AC1
1365: IORI TAC,1777
1366: HLRZ DAT,JBTADR(J)
1367: CAIG DAT,(AC1)
1368: JRST RELOC4
1369: SUBI DAT,(AC1)
1370: CAML DAT,TAC
1371: MOVE DAT,TAC
1372: ADD AC1,JBTADR(J)
1373: HRL AC1,DAT
1374: POP P,DAT
1375: RELOC3: HLRZ TAC,JBTADR(J)
1376: CAIGE TAC,400000
1377: MOVEI TAC,400000
1378: SUB TAC1,TAC
1379: TLNE TAC1,377777
1380: JRST TPOPJ
1381: HLRZ TAC,AC1
1382: CAIL TAC,(TAC1)
1383: AOS -1(P)
1384: JRST TPOPJ
1385:
1386: RELOC4: POP P,DAT
1387: JRST TPOPJ
1388:
1389:
1390:
1391:
1392:
1393:
1394:
1395:
1396:
1397:
1398:
1399:
1400: ↑↑RELOCB:
1401: PUSH P,AC1
1402: PUSHJ P,RELOCA
1403: JRST RELOC5
1404: POP P,(P)
1405: EXCH AC1,1(P)
1406: CAMN AC1,1(P)
1407: AOS (P)
1408: POPJ P,
1409:
1410: RELOC5: POP P,AC1
1411: POPJ P,
CORE page# 0019 next prev
1413: SUBTTL LOCK AND UNLOCK UUOS.
1414: ↑UNLOKC:MOVEI J,(DAT)
1415: ↑UNLOCK:
1416: PUSH P,TAC
1417: MOVEI TAC,JLOCK
1418: TDNN TAC,JBTSTS(J)
1419: JRST TPOPJ
1420: PUSH P,PROG
1421: ANDCAM TAC,JBTSTS(J)
1422: IFN FTSTAT,<
1423: MOVEI TAC,LOKSTA
1424: PUSHJ P,STAPUT
1425: >
1426: MOVE PROG,JBTADR(J)
1427: HLRZ TAC,PROG
1428: IORI TAC,1777
1429: ADDI TAC,1(PROG)
1430: CAME TAC,LOKTOP
1431: JRST UNLOK4
1432:
1433: UNLOK0: PUSH P,TAC1
1434: MOVEI PROG,(PROG)
1435: UNLOK1: MOVEI TAC,-2000(PROG)
1436: PUSHJ P,CORGB1
1437: ILDB TAC1,TAC
1438: JUMPE TAC1,UNLOK2
1439: MOVEI TAC,JLOCK
1440: CAIGE TAC1,101
1441: TDNE TAC,JBTSTS(TAC1)
1442: JRST UNLOK3
1443: JRST .+2
1444: UNLOK2: AOS CORTAL
1445: SUBI PROG,2000
1446: JRST UNLOK1
1447:
1448: UNLOK3: MOVEI TAC,(PROG)
1449: PUSHJ P,CORGB1
1450: MOVEM TAC,CORE2P
1451: MOVEM PROG,LOKTOP
1452: IFN FTCORBUG,< PUSHJ P,CORCHK >
1453: POP P,TAC1
1454: UNLOK4: POP P,PROG
1455: JRST TPOPJ
1456:
1457: LOCK0: JSP TAC,UUOMES
1458: ASCIZ /CAN'T LOCK WITH SEGMENT
1459: /
1460:
1461: ↑LOCK: LDB TAC1,PSEGN
1462: JUMPN TAC1,LOCK0
1463: SKIPE LOCKNO
1464: CAMN J,LOCKNO
1465: JRST LOCK1
1466: MOVEI TAC,JIFSEC/2
1467: PUSHJ P,SLEEPT
1468: JRST LOCK
1469: LOCK0A: MOVEI TAC,0
1470: PUSHJ P,SLEEP
1471: JRST LOCK
1472:
1473: LOCK1:
1474: PUSHJ P,ANYACT
1475: JRST LOCK0A
1476:
1477: MOVEI AC2,JLOCK
1478: TDNE AC2,JBTSTS(J)
1479: PUSHJ P,UNLOCK
1480: LOCK2A: MOVE LOC,SYSTOP
1481: CAML LOC,LOKTOP
1482: JRST LOCK2
1483: PUSHJ P,CORGBP
1484: MOVE UCHN,TAC
1485: HLRZ TAC,JBTADR(J)
1486: LOCK1A: TDZA BLK,BLK
1487: LOCK1B: ADDI BLK,2000
1488: LOCK1C: CAML LOC,LOKTOP
1489: JRST LOCK1D
1490: ILDB TAC1,UCHN
1491: ADDI LOC,2000
1492: JUMPE TAC1,LOCK1B
1493: CAIGE TAC1,101
1494: TDNE AC2,JBTSTS(TAC1)
1495: JRST .+2
1496: JRST LOCK1B
1497: JUMPE BLK,LOCK1C
1498: CAIG BLK,(TAC)
1499: JRST LOCK1A
1500: SUBI LOC,2000(BLK)
1501: JRST LOCK2
1502: LOCK1D: SUBI LOC,(BLK)
1503: LOCK2: HLL LOC,JBTADR(J)
1504: MOVEM LOC,LOKPOS
1505: CAMN LOC,JBTADR(J)
1506: JRST LOCK4
1507: PUSHJ P,LOCK5
1508: JRST LOCK3
1509:
1510: PSYNC CORCSC
1511: MOVE PROG,JBTADR(J)
1512: HLRZ TAC,PROG
1513: HRRZ LOC,PROG
1514: HLRZ BLK,PROG
1515: MOVEI UCHN,0
1516: PUSHJ P,CORSTG
1517: HRRZ LOC,LOKPOS
1518: PUSHJ P,CORGT1
1519: JFCL
1520: LOCK4:
1521: IFN FTSTAT,<
1522: MOVEI TAC,LOKSTA+100
1523: PUSHJ P,STAPUT
1524: >
1525: MOVEI TAC,JLOCK
1526: IORM TAC,JBTSTS(J)
1527: MOVE PROG,JBTADR(J)
1528: HLRZ TAC,PROG
1529: IORI TAC,1777
1530: ADDI TAC,1(PROG)
1531: CAMG TAC,LOKTOP
1532: JRST LOCK99
1533: MOVEM TAC,LOKTOP
1534:
1535: MOVE LOC,LOKTOP
1536: PUSHJ P,CORGBP
1537: MOVEM TAC,CORE2P
1538: LOCK99: PUSHJ P,SPWCNT
1539: SETZM LOCKNO
1540: MOVE TAC,JBTADR(J)
1541: JRST STOTAC
1542:
1543: LOCK5: HRRZ LOC,LOKPOS
1544: HLRZ AC3,LOKPOS
1545: PUSHJ P,CORGBP
1546: LOCK5A: ILDB TAC1,TAC
1547: CAIN TAC1,(J)
1548: JRST CPOPJ1
1549: JUMPN TAC1,CPOPJ
1550: SUBI AC3,2000
1551: JUMPG AC3,LOCK5A
1552: JRST CPOPJ1
1553:
1554:
1555: LOCK3: MOVEM J,LOCKNO
1556: PUSHJ P,LOCKPL
1557: MOVNI TAC,IOWQ
1558: MOVEM TAC,JOBQUE(J)
1559: PUSHJ P,WSCHED
1560: CAME J,LOCKNO
1561: JRST LOCK
1562: MOVE LOC,LOKPOS
1563: JRST LOCK2A
1564:
1565: LOCK3A:
1566: SKIPGE FSCLKF
1567: JRST LOCKPL
1568: SKIPN FINISH
1569: SKIPE FORCE
1570: JRST LOCKPL
1571: SKIPE J,LOCKNO
1572: SKIPL JBTSTS(J)
1573: JRST LOCK3C
1574: PUSHJ P,LOCK5
1575: JRST LOCK3B
1576: MOVNI TAC,TQ
1577: MOVEM TAC,JOBQUE(J)
1578: JRST REQUE
1579:
1580: LOCK3B: MOVEI J,(TAC1)
1581: MOVE TAC,JBTSTS(J)
1582: TLNE TAC,SHF!SWP
1583: JRST LOCKPL
1584: HLRZ TAC,JBTADR(J)
1585: SKIPN XJOB(J)
1586: PUSHJ P,XPAND
1587: LOCKPL: MOVE TAC,[LOCK3A,,1]
1588: CONO PI,PIOFF
1589: IDPB TAC,CLOCK
1590: CONO PI,PION
1591: POPJ P,
1592:
1593: LOCK3C: SETZM LOCKNO
1594: POPJ P,
CORE page# 0020 next prev
1596: SUBTTL FREE STORAGE ;AND OTHER POLITICAL PRISONERS
1597:
1598:
1599:
1600:
1601:
1602:
1603:
1604:
1605: SIZE←AC3
1606: BLOCK←AC1
1607:
1608: PICMSK←←37
1609: PICHON←←2000
1610: PICHOF←←1000
1611:
1612:
1613:
CORE page# 0021 next prev
1615:
1616:
1617:
1618:
1619:
1620:
1621:
1622:
1623:
1624:
1625:
1626:
1627:
1628:
1629:
1630:
1631:
1632:
1633:
1634:
1635:
1636:
1637:
1638:
1639:
1640:
1641:
1642:
1643:
1644:
1645:
1646:
1647:
1648:
1649:
1650:
1651:
1652:
1653:
1654:
1655:
1656:
1657:
1658:
1659: ↑FSINIT:
1660: SETZM FSBEG
1661: MOVE TAC,[XWD FSBEG,FSBEG+1]
1662: BLT TAC,FSEND
1663: SYNINI CORCSC
1664: SYNINI FSCSC
1665: MOVE LOC,MEMSIZ
1666: CAMN LOC,RMEMSIZ
1667: JRST FSINI2
1668: PUSHJ P,CORGBP
1669: MOVEM TAC,CORLST
1670: MOVEI AC2,2000
1671: FSINI1: IDPB AC2,CORLST
1672: ADDI LOC,2000
1673: AOS CORTAL
1674: IFN FTSWAP,<
1675: ADDM AC2,CORMAX >
1676: CAME LOC,RMEMSIZ
1677: JRST FSINI1
1678:
1679: FSINI2: MOVEM LOC,MEMSIZ
1680: MOVNI UCHN,FSNINIT
1681: ADDM UCHN,CORTAL
1682: MOVNI LOC,2000*FSNINIT
1683: IFN FTSWAP,<
1684: ADDM LOC,CORMAX>
1685: ADDB LOC,MEMSIZ
1686: PUSHJ P,CORGBP
1687: MOVEI UCHN,105
1688: IDPB UCHN,TAC
1689: MOVE AC2,TAC
1690: FSINI3: CAMN AC2,CORLST
1691: JRST FSINI4
1692: IDPB UCHN,AC2
1693: JRST FSINI3
1694:
1695: FSINI4: MOVEM TAC,CORLST
1696: IBP CORLST
1697: MOVE UCHN,[XWD 2000*FSNINIT,FSAVB+2*NFSB-1]
1698: MOVE AC2,RMEMSIZ
1699: SUBI AC2,1
1700: MOVEM UCHN,(AC2)
1701: HRRZM UCHN,-1(AC2)
1702: MOVEM AC2,(LOC)
1703: SETZ UCHN,
1704: FSINI5: MOVEI AC3,FSAVB+1(UCHN)
1705: MOVEM AC3,FSAVB(UCHN)
1706: MOVEM AC3,FSAVB+1(UCHN)
1707: ADDI UCHN,2
1708: CAIGE UCHN,2*NFSB-2
1709: JRST FSINI5
1710: HRRZM AC2,FSAVB+2*NFSB-2
1711: HRRZM AC2,FSAVB+2*NFSB-1
1712: MOVEI AC2,JIFSEC*=60
1713: MOVEM AC2,FSCKCT
1714: MOVEI UCHN,FSLIST
1715: MOVEM UCHN,FSIPTR
1716: MOVEM UCHN,FSOPTR
1717: JRST SFSINI
1718:
1719:
1720: FSACSV: EXCH DAT,(P)
1721: PUSH P,TAC
1722: PUSH P,TAC1
1723: PUSH P,AC2
1724: PUSH P,SIZE
1725: PUSH P,TEM
1726: JRST (DAT)
1727:
1728:
1729: FSACRS: POP P,TEM
1730: POP P,SIZE
1731: POP P,AC2
1732: POP P,TAC1
1733: POP P,TAC
1734: EXCH DAT,(P)
1735: POPJ P,
CORE page# 0022 next prev
1737:
1738:
1739:
1740:
1741:
1742:
1743:
1744:
1745:
1746:
1747:
1748: FSSBYP: POINT 17,(BLOCK),17
1749: FSSBP1: POINT 17,(AC2),17
1750:
1751: ↑FSGET: TDZA BLOCK,BLOCK
1752: ↑FSGETU:MOVNI BLOCK,1
1753: CONSZ PI,60000
1754: JRST FSGLUZ
1755: CONSO PI,77400
1756: SKIPE INTACT(PID)
1757: JRST .+2
1758: MOVEM BLOCK,FSGTUF
1759: AOS NFSGETS
1760: PUSHJ P,FSACSV
1761: PSYNC FSCSC
1762: MOVEI SIZE,2(SIZE)
1763: TRZE SIZE,TRIVIAL-1
1764: ADDI SIZE,TRIVIAL
1765: FSGETT: MOVEI TAC,(SIZE)
1766: LSH TAC,1-TSHF
1767: SUBI TAC,2
1768: CAILE TAC,2*NFSB-2
1769: JRST FSGTBX
1770: LSH TAC,-1
1771: AOS FSRPQ(TAC)
1772: LSH TAC,1
1773: FSGT0: MOVE TAC1,TAC
1774: MOVE BLOCK,MEMSIZ
1775: FSGT1: CAMGE BLOCK,FSAVB+1(TAC1)
1776: MOVE BLOCK,FSAVB+1(TAC1)
1777: ADDI TAC1,2
1778: AOS NFSLP1
1779: CAIGE TAC1,2*NFSB
1780: JRST FSGT1
1781: CAMG BLOCK,MEMSIZ
1782: JRST FSGTW
1783: PUSHJ P,FSGCL
1784: JRST FSGT0
1785: JRST FSGTC
1786:
1787: FSGTBX: AOS FSRPQ+NFSB-1
1788: FSGTB0: HRRZ BLOCK,FSAVB+2*NFSB-1
1789: FSGTB1: AOS NFSLP2
1790: CAIG BLOCK,FSAVB+2*NFSB-1
1791: JRST FSGTW
1792: SKIPG AC2,(BLOCK)
1793: JRST FSGTB0
1794: HLRZ TAC1,AC2
1795: CAIL TAC1,(SIZE)
1796: JRST FSGTB2
1797: MOVEI BLOCK,(AC2)
1798: JRST FSGTB1
1799:
1800: FSGTB2: PUSHJ P,FSGCL
1801: JRST FSGTB0
1802: JRST FSGTC
1803:
1804: FSGCL: CONI PI,AC2
1805: ANDI AC2,PICMSK
1806: CONO PI,PICHOF(AC2)
1807: SKIPG TAC1,(BLOCK)
1808: JRST FSGCLX
1809: HRRZ TAC,-1(BLOCK)
1810: HRRM TAC1,(TAC)
1811: HRRM TAC,-1(TAC1)
1812: CONO PI,PICHON(AC2)
1813: MOVSI AC2,400000
1814: IORM AC2,(BLOCK)
1815: JRST CPOPJ1
1816:
1817: FSGCLX: CONO PI,PICHON(AC2)
1818: POPJ P,
1819:
1820: FSGTC: LDB AC2,FSSBYP
1821: SETZ TEM,
1822: CAIGE AC2,TRIVIAL(SIZE)
1823: JRST FSGTC1
1824: MOVE TEM,AC2
1825: SUBI TEM,(SIZE)
1826: MOVEI AC2,(SIZE)
1827: DPB AC2,FSSBYP
1828: FSGTC1: HLLZS (BLOCK)
1829: SUBM BLOCK,AC2
1830: HRROM BLOCK,1(AC2)
1831: JUMPE TEM,FSGTCR
1832: HRLZM TEM,(AC2)
1833: SUBM AC2,TEM
1834: HRRZM AC2,1(TEM)
1835: HLRZ TEM,(AC2)
1836: CAIGE TEM,NFSB*TRIVIAL
1837: JRST FSGTC4
1838: JRST FSGTC5
1839: FSGTC2: CONO PI,PICHON(TEM)
1840: FSGTC5: SKIPG (TAC1)
1841: JRST FSGTC6
1842: MOVE DAT,-1(TAC1)
1843: HRRM DAT,-1(AC2)
1844: HRRM TAC1,(AC2)
1845: CONI PI,TEM
1846: ANDI TEM,PICMSK
1847: CONO PI,PICHOF(TEM)
1848: SKIPLE (TAC1)
1849: CAME DAT,-1(TAC1)
1850: JRST FSGTC2
1851: HRRM AC2,-1(TAC1)
1852: HRRM AC2,(DAT)
1853: CONO PI,PICHON(TEM)
1854: JRST FSGTCR
1855:
1856: FSGTC3: CONO PI,PICHON(TEM)
1857: FSGTC6: SKIPG DAT,(TAC)
1858: JRST FSGTC4
1859: HRRM DAT,(AC2)
1860: HRRM TAC,-1(AC2)
1861: CONI PI,TEM
1862: ANDI TEM,PICMSK
1863: CONO PI,PICHOF(TEM)
1864: CAME DAT,(TAC)
1865: JRST FSGTC3
1866: HRRM AC2,-1(DAT)
1867: HRRM AC2,(TAC)
1868: CONO PI,PICHON(TEM)
1869: JRST FSGTCR
1870:
1871: FSGTC4: MOVSI TAC,400000
1872: IORM TAC,(AC2)
1873: LDB TAC,FSSBP1
1874: SUBM AC2,TAC
1875: HRROM AC2,1(TAC)
1876: PUSH P,BLOCK
1877: MOVEI BLOCK,2(TAC)
1878: PUSHJ P,FSQUIK
1879: POP P,BLOCK
1880: FSGTCR: LDB TAC,FSSBYP
1881: ADDM TAC,FSBUSY
1882: SUBI BLOCK,-2(TAC)
1883: CONSO PI,77000
1884: SKIPN FSRTL
1885: JRST FSGRT1
1886: PUSH P,BLOCK
1887: PUSHJ P,FSCKX
1888: POP P,BLOCK
1889: FSGRT1: XSYNC FSCSC
1890: JSP DAT,FSACRS
1891: PUSH P,[FSGET]
1892: PUSHJ P,FSECHK
1893: POP P,(P)
1894: JRST CPOPJ1
1895:
1896:
1897: FSGTW: PUSHJ P,FSGETK
1898: JRST FSGTW5
1899: PUSHJ P,FSWAKE
1900: JRST FSGETT
1901:
1902: FSGTW5: CONSO PI,77400
1903: SKIPE FSGTUF
1904: JRST FSGFAI
1905: SKIPE INTACT(PID)
1906: JRST WSCHED
1907: AOS NFSWAITS
1908: PUSH P,J
1909: MOVE J,JOB(PID)
1910: HRL J,SIZE
1911: MOVEM J,@FSIPTR
1912: AOS TAC,FSIPTR
1913: CAIL TAC,FSLIST+JOBN
1914: MOVEI TAC,FSLIST
1915: MOVEM TAC,FSIPTR
1916: AOS FSCNT
1917: XSYNC FSCSC
1918: PUSHJ P,WSCHED
1919: SETZM FSGTUF
1920: PSYNC FSCSC
1921: PUSHJ P,FSWAKE
1922: POP P,J
1923: JRST FSGETT
1924:
1925: FSGFAI: XSYNC FSCSC
1926: JSP DAT,FSACRS
1927: AOS NFSGFA
1928: POPJ P,
1929:
1930: FSGLUZ: HRRZ BLOCK,(P)
1931: PUSHACS
1932: PUSHJ P,DISERR
1933: [ASCIZ/ FSGET CALLED ILLEGALLY FROM PI CHANNEL 1 OR 2
1934: RETURN ADDRESS = /]
1935: DISARG ( LOC,<BLOCK-20(P)> )
1936: [ASCIZ/
1937: /]
1938: -1
1939: POPACS
1940: JUMPE PID,CPOPJ
1941: HALT CPOPJ
CORE page# 0023 next prev
1943:
1944:
1945:
1946:
1947:
1948:
1949:
1950:
1951: FSGETK: JUMPN PID,CPOPJ
1952: CONSZ PI,77000
1953: POPJ P,
1954: PUSH P,LOC
1955: MOVE LOC,MEMSIZ
1956: SUBI LOC,2000
1957: PUSHJ P,CORGBP
1958: POP P,LOC
1959: ILDB TAC1,TAC
1960: JUMPN TAC1,FSSWAP
1961: MOVEI TAC1,105
1962: DPB TAC1,TAC
1963: IBP TAC
1964: MOVEM TAC,CORLST
1965: MOVNI TAC,2000
1966: IFN FTSWAP,<
1967: ADDM TAC,CORMAX >
1968: ADDM TAC,MEMSIZ
1969: SOS CORTAL
1970: IFN FTCORBUG,< PUSHJ P,CORCHK >
1971: PUSH P,LOC
1972: PUSH P,UCHN
1973: PSYNC CORCSC
1974: PUSHJ P,DIDLE4
1975: JFCL
1976: POP P,UCHN
1977: POP P,LOC
1978: MOVE BLOCK,MEMSIZ
1979: ADDI BLOCK,1777
1980: MOVSI TAC,402000
1981: MOVEM TAC,(BLOCK)
1982: HRROM BLOCK,@MEMSIZ
1983: MOVE BLOCK,MEMSIZ
1984: ADDI BLOCK,1
1985: PUSH P,SIZE
1986: PUSHJ P,FSGIVX
1987: POP P,SIZE
1988: SETZM FSGVKF
1989: JRST CPOPJ1
1990:
1991:
1992:
1993: FSSWAP:
1994: IFN FTSWAP,<
1995: SKIPN FORCE
1996: SKIPE FINISH
1997: JRST FSSWP3
1998: PUSH P,LOC
1999: MOVE LOC,MEMSIZ
2000: SUBI LOC,2000
2001: PUSHJ P,CORGBP
2002: POP P,LOC
2003: PUSH P,J
2004: ILDB J,TAC
2005: MOVE TAC,JBTSTS(J)
2006: TLNE TAC,SWP!SHF
2007: JRST FSWP3A
2008: HLRZ TAC,JBTADR(J)
2009: SKIPN XJOB(J)
2010: PUSHJ P,XPAND
2011: FSWP3A: POP P,J
2012: >
2013: FSSWP3: SETOM FSCLKF
2014: SETOM FSNCLK
2015: POPJ P,
2016:
2017:
2018:
2019:
2020: FSWAKE: CONO PI,PIOFF
2021: SKIPLE FSCNT
2022: JRST FSWAK1
2023: SETZM FSCNT
2024: CONO PI,PION
2025: POPJ P,
2026:
2027: FSWAK1: SOS FSCNT
2028: CONO PI,PION
2029: HRRZ J,@FSOPTR
2030: AOS TAC,FSOPTR
2031: CAIL TAC,FSLIST+JOBN
2032: MOVEI TAC,FSLIST
2033: MOVEM TAC,FSOPTR
2034: SKIPL JBTSTS(J)
2035: JRST FSWAKE
2036: MOVNI TAC,RUNQ
2037: MOVEM TAC,JOBQUE(J)
2038: JRST REQUE
CORE page# 0024 next prev
2040:
2041:
2042:
2043:
2044: ↑FSCLK: SETZM FSNCLK
2045: PSYNC FSCSC
2046: PUSHJ P,FSCKX
2047: FSCKY: SKIPN FSCLKF
2048: JRST FSCLK1
2049: SETZM FSCLKF
2050: PUSHJ P,FSGETK
2051: JRST FSCKZ
2052: PUSHJ P,FSWAKE
2053: JRST FSCKZ
2054:
2055: FSCLK1: SKIPN FSGVKF
2056: JRST FSCKZ
2057: SETZM FSGVKF
2058: HRRZ BLOCK,@MEMSIZ
2059: LDB SIZE,FSSBYP
2060: CAIGE SIZE,2000
2061: JRST FSCKZ
2062: PUSHJ P,FSGCL
2063: JRST FSCKZ
2064: LDB SIZE,FSSBYP
2065: MOVEI TEM,(BLOCK)
2066: SUBI TEM,-1(SIZE)
2067: HRROM BLOCK,(TEM)
2068: CAIL SIZE,2000
2069: CAME TEM,MEMSIZ
2070: JRST FSGVK3
2071: SUBI SIZE,2000
2072: JUMPE SIZE,FSGVK1
2073: DPB SIZE,FSSBYP
2074: SUBM BLOCK,SIZE
2075: HRROM BLOCK,1(SIZE)
2076: MOVEI BLOCK,2(SIZE)
2077: SETOM (SIZE)
2078: PUSHJ P,FSGIVX
2079: FSGVK1: MOVEI TAC,2000
2080: ADDM TAC,MEMSIZ
2081: IFN FTSWAP,<
2082: ADDM TAC,CORMAX>
2083: AOS CORTAL
2084: MOVE LOC,MEMSIZ
2085: SUBI LOC,2000
2086: PUSHJ P,CORGBP
2087: SETZ TAC1,
2088: IDPB TAC1,TAC
2089: IBP TAC
2090: MOVEM TAC,CORLST
2091: IFN FTCORBUG,< PUSHJ P,CORCHK >
2092: PSYNC CORCSC
2093: PUSHJ P,DIDLE4
2094: JFCL
2095: SETOM FSGVKF
2096: JRST FSCKZ
2097:
2098: FSGVK3: MOVEI BLOCK,1(TEM)
2099: PUSHJ P,FSGIVX
2100: FSCKZ: SKIPLE FSCKCT
2101: JRST FSCLK3
2102: MOVE BLOCK,RMEMSIZ
2103: SUB BLOCK,MEMSIZ
2104: SUB BLOCK,FSBUSY
2105: CAILE BLOCK,5000
2106: JRST FSCLK4
2107: MOVEI BLOCK,=30*JIFSEC
2108: MOVEM BLOCK,FSCKCT
2109: FSCLK3: XSYNC FSCSC
2110: POPJ P,
2111:
2112: FSCLK4: XSYNC FSCSC
2113: MOVEI BLOCK,=10*JIFSEC
2114: MOVEM BLOCK,FSCKCT
2115: JRST RELEX
2116:
2117:
2118: FSCKX: SKIPN FSRTL
2119: POPJ P,
2120: CONO PI,PIOFF
2121: HRRZ BLOCK,FSRTL
2122: MOVE TAC,(BLOCK)
2123: HRRZM TAC,FSRTL
2124: CONO PI,PION
2125: LDB TAC,FSSBYP
2126: SUBI BLOCK,-2(TAC)
2127: PUSHJ P,FSGIVX
2128: JRST FSCKX
CORE page# 0025 next prev
2130:
2131:
2132:
2133:
2134:
2135:
2136:
2137:
2138:
2139:
2140:
2141: FSECHK: PUSH P,BLOCK
2142: PUSH P,SIZE
2143: CAMGE BLOCK,RMEMSIZ
2144: CAMG BLOCK,MEMSIZ
2145: JRST FSECK1
2146: SUBI BLOCK,1
2147: TRNE BLOCK,TRIVIAL-1
2148: JRST FSECK1
2149: HRRZ BLOCK,(BLOCK)
2150: CAMGE BLOCK,RMEMSIZ
2151: CAMG BLOCK,MEMSIZ
2152: JRST FSECK1
2153: HLRZ SIZE,(BLOCK)
2154: SUBI BLOCK,-400002(SIZE)
2155: CAME BLOCK,-1(P)
2156: JRST FSECK1
2157: POP P,SIZE
2158: POP P,BLOCK
2159: POPJ P,
2160:
2161: FSECK1:
2162: PUSHACS
2163: PUSHJ P,DISMES
2164: ASCIZ /RELEASE OF NON-EX FREE STORAGE BLOCK. BLOCK = /
2165: MOVE TAC,-21(P)
2166: PUSHJ P,DISLOC
2167: PUSHJ P,DISMES
2168: ASCIZ /
2169: CALLERS ADDRESS = /
2170: MOVE TAC,-23(P)
2171: PUSHJ P,DISLOC
2172: PUSHJ P,DISMES
2173: ASCIZ /
2174:
2175: /
2176: SKIPE DEBMOD
2177: PUSHJ P,DISFLUSH
2178: POPACS
2179: DEBCHECK
2180: POP P,SIZE
2181: POP P,BLOCK
2182: POP P,(P)
2183: POPJ P,
2184:
2185: ↑FSGIVE:MOVEI BLOCK,(BLOCK)
2186: PUSHJ P,FSECHK
2187: AOS NFSGIVES
2188: PUSH P,BLOCK
2189: HRRZ BLOCK,-1(BLOCK)
2190: LDB BLOCK,FSSBYP
2191: MOVN BLOCK,BLOCK
2192: ADDM BLOCK,FSBUSY
2193: POP P,BLOCK
2194: CONSZ PI,77000
2195: JRST FSQUK1
2196: PUSHJ P,FSACSV
2197: PUSHJ P,FSGIVY
2198: JSP DAT,FSACRS
2199: POPJ P,
2200:
2201: FSGIVX: PUSHJ P,FSECHK
2202: CONSZ PI,77000
2203: JRST FSQUK1
2204: FSGIVY: PUSH P,BLOCK
2205: PSYNC FSCSC
2206: MOVEI AC2,-2(BLOCK)
2207: HRRZ BLOCK,1(AC2)
2208: CAMG AC2,MEMSIZ
2209: JRST FSGV1
2210: PUSH P,BLOCK
2211: MOVE BLOCK,AC2
2212: PUSHJ P,FSGCL
2213: JRST FSGV0
2214: LDB TEM,FSSBYP
2215: MOVEI DAT,(BLOCK)
2216: SUBI DAT,(TEM)
2217: POP P,BLOCK
2218: LDB TAC1,FSSBYP
2219: ADD TEM,TAC1
2220: DPB TEM,FSSBYP
2221: HRROM BLOCK,1(DAT)
2222: JRST FSGV1
2223: FSGV0: POP P,BLOCK
2224: FSGV1: MOVEI TAC1,1(BLOCK)
2225: JUMPE TAC1,FSGV2A
2226: CAML TAC1,RMEMSIZ
2227: JRST FSGV2A
2228: HRRZ TAC1,1(BLOCK)
2229: CONI PI,DAT
2230: ANDI DAT,PICMSK
2231: CONO PI,PICHOF(DAT)
2232: HRRZ AC2,1(BLOCK)
2233: SKIPG TAC,(AC2)
2234: JRST FSGV2
2235: MOVE TAC1,-1(AC2)
2236: HRRM TAC1,-1(TAC)
2237: HRRM TAC,(TAC1)
2238: CONO PI,PICHON(DAT)
2239: MOVSI DAT,400000
2240: IORM DAT,(AC2)
2241: LDB TAC,FSSBP1
2242: LDB SIZE,FSSBYP
2243: ADD SIZE,TAC
2244: MOVE DAT,AC2
2245: SUB DAT,SIZE
2246: DPB SIZE,FSSBP1
2247: HRROM AC2,1(DAT)
2248: SKIPA BLOCK,AC2
2249: FSGV2: CONO PI,PICHON(DAT)
2250: FSGV2A: LDB SIZE,FSSBYP
2251: LSH SIZE,1-TSHF
2252: SUBI SIZE,2
2253: CAIL SIZE,NFSB*2
2254: MOVEI SIZE,NFSB*2-2
2255: JRST FSGV6
2256: FSGV5: CONO PI,PICHON(TAC1)
2257: FSGV6: MOVEI TAC,FSAVB+1(SIZE)
2258: FSGV7: SKIPG DAT,(TAC)
2259: JRST FSGV6
2260: HRRZ TEM,(TAC)
2261: CAIGE TEM,(BLOCK)
2262: JRST FSGV8
2263: CAME DAT,(TAC)
2264: JRST FSGV6
2265: MOVEI TAC,(TEM)
2266: JRST FSGV7
2267:
2268: FSGV8: HRRZM TAC,-1(BLOCK)
2269: HRRM TEM,(BLOCK)
2270: LDB AC2,FSSBYP
2271: SUBM BLOCK,AC2
2272: MOVSI SIZE,400000
2273: ANDCAM SIZE,(BLOCK)
2274: CONI PI,TAC1
2275: ANDI TAC1,PICMSK
2276: CONO PI,PICHOF(TAC1)
2277: CAME DAT,(TAC)
2278: JRST FSGV5
2279: HRRM BLOCK,(TAC)
2280: HRRM BLOCK,-1(TEM)
2281: HRRZM BLOCK,1(AC2)
2282: CONO PI,PICHON(TAC1)
2283: HRRZ BLOCK,@MEMSIZ
2284: LDB SIZE,FSSBYP
2285: SKIPL (BLOCK)
2286: CAIGE SIZE,2000
2287: JRST FSXPOP
2288: SKIPN FSCNT
2289: SETOM FSGVKF
2290: SETOM FSNCLK
2291: FSXPOP: PUSH P,J
2292: PUSHJ P,FSWAKE
2293: POP P,J
2294: FSPOP: POP P,BLOCK
2295: XSYNC FSCSC
2296: POPJ P,
2297:
2298:
2299: FSQUIK: PUSHJ P,FSECHK
2300: FSQUK1: PUSH P,BLOCK
2301: PUSH P,TEM
2302: HRRZ BLOCK,-1(BLOCK)
2303: PSYNC FSCSC
2304: CONO PI,PIOFF
2305: HRRZ TEM,FSRTL
2306: HRRM TEM,(BLOCK)
2307: HRRZM BLOCK,FSRTL
2308: CONO PI,PION
2309: SETOM FSNCLK
2310: POP P,TEM
2311: JRST FSPOP
CORE page# 0026 next prev
2313:
2314:
2315: ↑UFSGET:
2316: PUSHJ P,FSGET
2317: JRST .+2
2318: POPJ P,
2319: PUSHACS
2320: PUSHJ P,DISDATE
2321: PUSHJ P,DISMES
2322: ASCIZ/π
2323: NO FREE STORAGE AT UFSGET. /
2324: CONSO PI,77400
2325: JRST UFSGT1
2326: PUSHJ P,DISMES
2327: ASCIZ /NOT AT UUO LEVEL! RETURN PC = /
2328: MOVE TAC,P-17(P)
2329: PUSHJ P,DISOCT
2330: PUSHJ P,DISMES
2331: ASCIZ / PI = /
2332: CONI PI,TAC
2333: PUSHJ P,DISLOC
2334: UFSGT1: PUSHJ P,DISCRLF
2335: POPACS
2336: JSP DAT,UERROR
CORE page# 0027 next prev
2338:
2339:
2340:
2341:
2342:
2343:
2344:
2345:
2346:
2347:
2348:
2349:
2350:
2351:
2352:
2353: ↑GETPDL:
2354: SKIPE P,JBTPDL(J)
2355: JRST (TAC)
2356: MOVEM BLOCK,JOBTM1(JDAT)
2357: MOVEM SIZE,JOBTM2(JDAT)
2358: MOVEI SIZE,JBTPLN
2359: MOVEI P,JOBPDL-1(JDAT)
2360: HRLI P,-JOBPLN
2361: PUSHJ P,FSGET
2362: JSP DAT,ERROR
2363: PSYNC PDLCSC
2364: SKIPN P,JBTPDL(J)
2365: JRST GETPD1
2366: XSYNC PDLCSC
2367: PUSHJ P,FSGIVE
2368: JRST GETPD2
2369: GETPD1: MOVEI P,-1(BLOCK)
2370: HRLI P,1-<JBTPLN+JOBPRT-JOBPFI>
2371: MOVEM P,JBTPDL(J)
2372: XSYNC PDLCSC
2373: SETZM 1(P)
2374: MOVSI BLOCK,1(P)
2375: HRRI BLOCK,2(P)
2376: BLT BLOCK,JBTPLN(P)
2377: GETPD2: MOVE BLOCK,JOBTM1(JDAT)
2378: MOVE SIZE,JOBTM2(JDAT)
2379: PUSHACS
2380: PUSHJ P,DISMES
2381: ASCIZ /AT GETPDL WITHOUT A PDL /
2382: PUSHJ P,DISJOB
2383: PUSHJ P,DISCRLF
2384: POPACS
2385: SKIPE DEBMOD
2386: PUSHJ P,DDTCAL
2387: JRST (TAC)
2388:
2389: ↑RELPDL:
2390: HRRZ BLOCK,JBTPDL(J)
2391: JUMPE BLOCK,CPOPJ
2392: HRRZ TAC,JBTPDL(J)
2393: ADDI TAC,JBTPLN+JOBPRT-JOBPFI
2394: SKIPN (TAC)
2395: SOJGE TAC,.-1
2396: SUB TAC,BLOCK
2397: CAMLE TAC,NPUSHD
2398: MOVEM TAC,NPUSHD
2399: SETZM JBTPDL(J)
2400: AOS NFSGIVES
2401: MOVNI TAC,JBTPLN+2
2402: ADDM TAC,FSBUSY
2403: AOJA BLOCK,FSQUIK
CORE page# 0028 next prev
2405:
2406:
2407:
2408: SFSINI: HRRZ DDB,SFHEAD
2409: SFSIOL: LDB DAT,[331000,,SFSIZE(DDB)]
2410: JUMPE DAT,SFSI2
2411: HRRZ AC3,SFSIZE(DDB)
2412: MOVEI AC2,(DDB)
2413: SFSIIL: PUSHJ P,FSGETU
2414: JRST .+4
2415: MOVEM AC1,(AC2)
2416: MOVEI AC2,(AC1)
2417: SOJG DAT,SFSIIL
2418: SETZM (AC2)
2419: MOVEM DAT,SPFSN(DDB)
2420: SKIPL SFSIZE(DDB)
2421: ADDM DAT,SPFSNT
2422: SFSI2: HRRZ DDB,SFLINK(DDB)
2423: JUMPN DDB,SFSIOL
2424: POPJ P,
2425:
2426:
2427: ↑SFSCLK:HRRZ DDB,SFHEAD
2428: SFSCL1: SKIPLE SPFSN(DDB)
2429: SKIPGE SFSIZE(DDB)
2430: JRST SFSCL2
2431: SFSCLL: HRRZ AC3,SFSIZE(DDB)
2432: PUSHJ P,FSGET
2433: JRST SFSCL2
2434: CONO PI,PIOFF
2435: EXCH AC1,(DDB)
2436: MOVEM AC1,@(DDB)
2437: CONO PI,PION
2438: SOS AC1,SPFSNT
2439: SOSLE SPFSN(DDB)
2440: JRST SFSCLL
2441: JUMPLE AC1,CPOPJ
2442: SFSCL2: HRRZ DDB,SFLINK(DDB)
2443: JUMPN DDB,SFSCL1
2444: POPJ P,
CORE page# 0029 next prev
2446:
2447:
2448:
2449:
2450: ↑SFSGET:PUSH P,AC3
2451: SKIPGE SFSIZE(AC3)
2452: JRST SFGSF
2453: SFGFS: HRRZ AC3,SFSIZE(AC3)
2454: PUSHJ P,FSGETU
2455: JRST SFSGTS
2456: SFSXIT: POP P,AC3
2457: SFSWIN: JUMPGE AC3,CPOPJ1
2458: POPJ P,
2459:
2460: SFSGTS: PUSHJ P,SFGTS
2461: JRST SFSLUZ
2462: SFSGOK: POP P,AC3
2463: AOS SPFSN(AC3)
2464: SKIPL SFSIZE(AC3)
2465: AOS SPFSNT
2466: JRST SFSWIN
2467:
2468: SFGSF: PUSHJ P,SFGTS
2469: SKIPA AC3,(P)
2470: JRST SFSGOK
2471: JRST SFGFS
2472:
2473: SFGTS: MOVEI AC3,
2474: CONO PI,PIOFF
2475: SKIPN AC1,@-1(P)
2476: JRST PIONJ
2477: EXCH AC3,(AC1)
2478: MOVEM AC3,@-1(P)
2479: CONO PI,PION
2480: JRST CPOPJ1
2481:
2482: SFSLUZ: POP P,AC3
2483: AOS SFLOSS(AC3)
2484: CONSO PI,77400
2485: JRST SFULUZ
2486: JUMPL AC3,SFILUZ
2487: POPJ P,
2488:
2489: SFULUZ: TLNE AC3,SFNWT
2490: JUMPGE AC3,CPOPJ
2491: PUSH P,AC3
2492: HRRZ AC3,SFSIZE(AC3)
2493: PUSHJ P,UFSGET
2494: JRST SFSXIT
CORE page# 0030 next prev
2496:
2497: SFILUZ: HLRZ AC2,SFLOSS(AC3)
2498: SKIPN AC2
2499: MOVEI AC2,[ASCIZ /SOMETHING/]
2500: PUSHACS
2501: PUSHJ P,DISDAT
2502: PUSHJ P,DISERR
2503: [ASCIZ /πππππππNO CORE FOR /]
2504: @AC2-20(P)
2505: [ASCIZ / AT SFSGET.
2506:
2507: /]
2508: -1
2509: CONO PI,PIOFF
2510: SETOM DISFLAG
2511: PUSHJ P,DISFLUSH
2512: PUSHJ P,DDTCALL
2513: JRST AUTOLOAD
CORE page# 0031 next prev
2515:
2516:
2517: ↑SFSGIV:PUSH P,AC3
2518: AOS AC3,-1(P)
2519: MOVEI AC3,@-1(AC3)
2520: SKIPGE SFSIZE(AC3)
2521: SKIPG SPFSN(AC3)
2522: JRST [POP P,AC3↔JRST FSGIVE]
2523: PUSH P,AC1
2524: ANDI AC1,-1
2525: CONO PI,PIOFF
2526: EXCH AC1,(AC3)
2527: MOVEM AC1,@(AC3)
2528: CONO PI,PION
2529: POP P,AC1
2530: SOS SPFSN(AC3)
2531: POP P,AC3
2532: POPJ P,
2533:
2534:
2535:
2536: ↑SFSREL:SKIPL SFSIZE(AC3)
2537: ADDM AC2,SPFSNT
2538: ADDB AC2,SPFSN(AC3)
2539: JUMPGE AC2,CPOPJ
2540: SFSRLL: CONO PI,PIOFF
2541: SKIPN AC1,(AC3)
2542: JRST PIONJ
2543: HRRZ AC2,(AC1)
2544: MOVEM AC2,(AC3)
2545: CONO PI,PION
2546: PUSHJ P,FSGIVE
2547: SKIPL SFSIZE(AC3)
2548: AOS SPFSNT
2549: AOSGE SPFSN(AC3)
2550: JRST SFSRLL
2551: POPJ P,
CORE page# 0032 next prev
2553:
2554:
2555:
2556:
2557: RELEX: MOVE AC2,MEMSIZ
2558: ADDI AC2,2000
2559: CAML AC2,RMEMSIZ
2560: POPJ P,
2561: HLRZ DDB,SFHEAD
2562: RELX1: MOVEI TAC,(DDB)
2563: RELX2: HRRZ TEM,(TAC)
2564: JUMPE TEM,RELXO
2565: CAIL TEM,(AC2)
2566: JRST RELXI
2567: MOVE TAC1,(TEM)
2568: HRRZ AC3,SFSIZE(DDB)
2569: PUSHJ P,FSGET
2570: JRST RELXO
2571: CAIGE AC1,(AC2)
2572: JRST RELXL
2573: MOVEM TAC1,(AC1)
2574: CONO PI,PIOFF
2575: CAMN TAC1,(TEM)
2576: CAME TEM,(TAC)
2577: JRST [CONO PI,PION↔JRST RELXL]
2578: MOVEM AC1,(TAC)
2579: CONO PI,PION
2580: EXCH AC1,TEM
2581: PUSHJ P,FSGIVE
2582: RELXI: MOVE TAC,TEM
2583: JRST RELX2
2584:
2585: RELXL: PUSHJ P,FSGIVE
2586: RELXO: HLRZ DDB,SFLINK(DDB)
2587: JUMPN DDB,RELX1
2588: POPJ P,
CORE page# 0033 next prev
2590: BEND CORE
EOF: CORE end-of-file. cnt=32